import assign from 'lodash/assign'; // @ts-ignore

var getInitConfigStore = function getInitConfigStore() {
  return {
    initC7nUiConfig: function initC7nUiConfig() {
      return require('cpaas-front/lib/utils/c7nUiConfig');
    }
  };
};

export var getConfigStore = function getConfigStore() {
  if (!window._cpaasConfigStore) {
    window._cpaasConfigStore = getInitConfigStore();
  }

  return window._cpaasConfigStore;
};
/**
 * 获取 src/app.ts 文件中的配置
 * @param key src/app.ts export 出来的 key
 */

export var getConfig = function getConfig(key) {
  return getConfigStore()[key];
};
export var overWriteConfig = function overWriteConfig(config) {
  var oldConfig = getConfigStore();
  var newConfig = assign({}, oldConfig, config);

  if (config.dvaAppInit) {
    var oldDvaAppInit = oldConfig.dvaAppInit;

    newConfig.dvaAppInit = function (dvaApp) {
      oldDvaAppInit && oldDvaAppInit(dvaApp);
      config.dvaAppInit(dvaApp);
    };
  }

  window._cpaasConfigStore = newConfig;
  return getConfigStore();
};
